.TH std::ranges::transform_view::end 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::transform_view::end \- std::ranges::transform_view::end

.SH Synopsis
   constexpr /*sentinel*/<false> end();                               \fB(1)\fP \fI(since C++20)\fP
   constexpr /*iterator*/<false> end() requires                       \fB(2)\fP \fI(since C++20)\fP
   ranges::common_range<V>;
   constexpr /*sentinel*/<true> end() const

     requires ranges::range<const V> &&                               \fB(3)\fP \fI(since C++20)\fP

              std::regular_invocable<const F&,
   ranges::range_reference_t<const V>>;
   constexpr /*iterator*/<true> end() const

     requires ranges::common_range<const V> &&                        \fB(4)\fP \fI(since C++20)\fP

              std::regular_invocable<const F&,
   ranges::range_reference_t<const V>>;

   Returns a sentinel or an iterator representing the end of the transform_view.

   Let base_ be the underlying view:

   1) Equivalent to return /*sentinel*/<false>{ranges::end(base_)};.
   2) Equivalent to return /*iterator*/<false>{*this, ranges::end(base_)};.
   3) Equivalent to return /*sentinel*/<true>{ranges::end(base_)};.
   4) Equivalent to return /*iterator*/<true>{*this, ranges::end(base_)};.

.SH Parameters

   \fI(none)\fP

.SH Return value

   1,3) sentinel which compares equal to the end iterator
   2,4) iterator to the element following the last element

.SH Notes

   end() returns an iterator if and only if the underlying view is a common_range:
   transform_view<V,F> models common_range whenever V does.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   begin       returns an iterator to the beginning
   (C++20)     \fI(public member function)\fP
   ranges::end returns a sentinel indicating the end of a range
   (C++20)     (customization point object)

.SH Category:
     * Todo no example
